<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>kali工具箱</title>
<script src="./static/bootstrap.min.js"></script>
<link rel="stylesheet" href="./static/main.css">
<link rel="stylesheet" href="./static/bootstrap.min.css">
<style type="text/css" id="syntaxhighlighteranchor"></style>
</head>
<main class="main-container ng-scope" ng-view="">
<div class="main receptacle post-view ng-scope">
<article class="entry ng-scope" ng-controller="EntryCtrl" ui-lightbox="">
<section class="entry-content ng-binding" ng-bind-html="postContentTrustedHtml">
<h2> diStorm3包装说明</h2><p style="text-align: justify;"> diStorm是一个轻量级的，易于使用和快速的分解库。 diStorm拆卸在16，32和64位模式下的指令。支持的指令集：FPU，MMX，SSE，SSE2，SSE3，SSSE3，SSE4，支持3DNow！ （W /扩展），新的X86-64指令集，VMX，AMD的SVM和AVX！ diStorm的新的接口的输出是一个特殊的结构，可以描述任何x86指令，这种结构可以在以后格式化成文字显示太。 diStorm是用C写的，但对于快速使用，diStorm也有包装在Python / Ruby的/ Java和可以很容易地使用C语言也是如此。它也是最快的反汇编库！源代码是非常干净，可读性强，便于携带和平台无关的（同时支持小和大endianity）。 diStorm完全取决于C库，因此它可以嵌入或内核模块中使用。需要注意的是diStorm3是向后diStorm64的接口兼容（但是，请确保您使用了最新的头文件）。 </p><p>资料来源：https://code.google.com/p/distorm/ <br> <a href="http://code.google.com/p/distorm/" variation="deepblue" target="blank">diStorm3首页</a> | <a href="http://git.kali.org/gitweb/?p=packages/distorm3.git;a=summary" variation="deepblue" target="blank">卡利diStorm3回购</a> </p><ul><li>作者：吉尔Dabah </li><li>许可：GPLv3的</li></ul><h3> diStorm3用法示例</h3><p>通过拆机产生msfpayload阶段性反转的外壳： </p><code><a class="__cf_email__" href="/cdn-cgi/l/email-protection" data-cfemail="285a47475c6843494441">[email&#160;protected]</a><script data-cfhash='f9e31' type="text/javascript">/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script>:~# python<br>
Python 2.7.3 (default, Mar 13 2014, 11:03:55) <br>
[GCC 4.7.2] on linux2<br>
Type "help", "copyright", "credits" or "license" for more information.<br>
&gt;&gt;&gt; from distorm3 import Decode, Decode16Bits, Decode32Bits, Decode64Bits<br>
&gt;&gt;&gt; l = Decode(0x100, open("stagedrev.bin", "rb").read(), Decode16Bits)<br>
&gt;&gt;&gt; for i in l:<br>
...  print "0x%08x (%02x) %-20s %s" % (i[0],  i[1],  i[3],  i[2])<br>
... <br>
0x00000100 (02) 7f45                 JG 0x147<br>
0x00000102 (01) 4c                   DEC SP<br>
0x00000103 (01) 46                   INC SI<br>
0x00000104 (02) 0101                 ADD [BX+DI], AX<br>
0x00000106 (02) 0100                 ADD [BX+SI], AX<br>
0x00000108 (02) 0000                 ADD [BX+SI], AL<br>
0x0000010a (02) 0000                 ADD [BX+SI], AL<br>
0x0000010c (02) 0000                 ADD [BX+SI], AL<br>
0x0000010e (02) 0000                 ADD [BX+SI], AL<br>
0x00000110 (02) 0200                 ADD AL, [BX+SI]<br>
0x00000112 (02) 0300                 ADD AX, [BX+SI]<br>
0x00000114 (02) 0100                 ADD [BX+SI], AX<br>
0x00000116 (02) 0000                 ADD [BX+SI], AL<br>
0x00000118 (01) 54                   PUSH SP<br>
0x00000119 (03) 800408               ADD BYTE [SI], 0x8</code><div style="display:none">
<script src="//s11.cnzz.com/z_stat.php?id=1260038378&web_id=1260038378" language="JavaScript"></script>
</div>
</main></body></html>
